Recursive Methods হলো এমন মেথড যা নিজেকে পুনরায় কল করে। এটি সাধারণত এমন সমস্যাগুলি সমাধান করতে ব্যবহৃত হয়, যা একই ধরনের উপ-সমস্যায় ভাগ করা যায়। Recursive মেথড সাধারণত কিছু নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত পুনরায় নিজেকে কল করে।
Recursive মেথডের কিছু সাধারণ ব্যবহার হলো ফ্যাক্টোরিয়াল, ফিবোনাচি সিরিজ এবং অন্যান্য সমস্যা, যা উপ-সমস্যায় ভাগ করে সমাধান করা যায়।
ফ্যাক্টোরিয়াল হলো একটি সংখ্যা এবং তার পূর্ববর্তী সমস্ত সংখ্যার গুণফল। যেমন, ৫ এর ফ্যাক্টোরিয়াল (5!) হলো 5 x 4 x 3 x 2 x 1 = 120।
Recursive মেথড দিয়ে ফ্যাক্টোরিয়াল নির্ণয়:
public class FactorialCalculator {
public Integer factorial(Integer n) {
// বেস কেস: n যদি 1 হয়, তাহলে 1 রিটার্ন করবে
if (n <= 1) {
return 1;
}
// Recursive Call: n * factorial(n - 1)
return n * factorial(n - 1);
}
}
// ব্যবহার
FactorialCalculator calc = new FactorialCalculator();
Integer result = calc.factorial(5); // result = 120
System.debug('Factorial of 5: ' + result);
এখানে factorial()
মেথড নিজেকে পুনরায় কল করে যতক্ষণ না n
1 বা এর কম হয়। যখন n
1 হয়, মেথডটি 1 রিটার্ন করে এবং Recursive কল শেষ হয়।
ফিবোনাচি সিরিজ হলো এমন একটি সংখ্যার সিরিজ যেখানে প্রতিটি সংখ্যা তার আগের দুটি সংখ্যার যোগফল। যেমন: 0, 1, 1, 2, 3, 5, 8,...
Recursive মেথড দিয়ে ফিবোনাচি সিরিজের নির্দিষ্ট স্থান নির্ণয়:
public class FibonacciCalculator {
public Integer fibonacci(Integer n) {
// বেস কেস: n যদি 0 বা 1 হয়
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
}
// Recursive Call: fibonacci(n - 1) + fibonacci(n - 2)
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
// ব্যবহার
FibonacciCalculator fibCalc = new FibonacciCalculator();
Integer fibResult = fibCalc.fibonacci(6); // result = 8
System.debug('6th Fibonacci number: ' + fibResult);
এখানে fibonacci()
মেথড নিজেকে পুনরায় কল করে এবং আগের দুটি সংখ্যার যোগফল রিটার্ন করে। যখন n
0 বা 1 হয়, তখন Recursive কল বন্ধ হয় এবং বেস কেস অনুযায়ী রিটার্ন করা হয়।
Recursive Methods ব্যবহার করে কার্যকরী ও পুনঃব্যবহারযোগ্য কোড তৈরি করা যায়, যা জটিল সমস্যাগুলোর সমাধান সহজ করে।
common.read_more